package com.zrwl.poscloud.xo.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zrwl.poscloud.base.entity.EmployeeAccountLog;
import com.zrwl.poscloud.base.superI.SuperService;
import com.zrwl.poscloud.xo.vo.EmployeeAccountLogVO;
import com.zrwl.poscloud.xo.vo.EmployeeAccountVO;
import com.zrwl.poscloud.xo.vo.EmployeeVO;
import com.zrwl.poscloud.xo.vo.TradeDetailVO;

import java.util.List;
import java.util.Map;

/**
 * 消费人账户变动 服务类
 *
 * @author 刘思童 AutoGenerate
 * @date 2021-07-27
 */
public interface EmployeeAccountLogService extends SuperService<EmployeeAccountLog> {

    public IPage<EmployeeAccountLog> getPageList(EmployeeAccountLogVO employeeAccountLogVO);
    public IPage<EmployeeAccountLogVO> getEmployeeAccountLogList(EmployeeAccountLogVO employeeAccountLogVO);
    /**
     * 获取交易明细账户日志列表
     * @param employeeAccountLogVO
     * @return
     */
    public IPage<EmployeeAccountLogVO> getTradeDetailAccountLogList(EmployeeAccountLogVO employeeAccountLogVO);
    public IPage<EmployeeAccountLogVO> getRechargeTradeDetailAccountLogList(EmployeeAccountLogVO employeeAccountLogVO);
    public List<EmployeeAccountLog> getAllList(EmployeeAccountLogVO employeeAccountLogVO);
    public boolean add(EmployeeAccountLogVO employeeAccountLogVO);
    public String edit(EmployeeAccountLogVO employeeAccountLogVO);
    public String delete(EmployeeAccountLogVO employeeAccountLogVO);
    public String generateEmployeeAccountLog(List<TradeDetailVO> tradeDetailVOList) throws Exception;

    /**
     * 产生一条充值账单(导入充值)
     * 账户变动记录(电子钱包的变动前余额和变动后余额)
     * 变更账户余额
     * 补贴账户产生一条充值记录
     * @param row 当前数据
     * @param employeeAccountVO 人员账户
     * @param employeeVO 人员
     * @param accountWeight 是否判重
     * @return
     */
    public EmployeeAccountLogVO insertRechargeBill(Map<String, String> row, EmployeeAccountVO employeeAccountVO,EmployeeVO employeeVO, boolean accountWeight);
}
